export enum ROUTES {
    BASE_PATH = '/',
    ACCOUNTS_EDIT = '/accounts/edit',
    ACCOUNTS_WALLET_EDIT = '/accounts/wallet/edit',
    ACCOUNTS_REMOVE = '/accounts/remove',
    ACCOUNTS_WALLET_REMOVE = '/accounts/wallet/remove',
    ACCOUNTS_WALLET_MANAGEMENT = '/accounts/wallet/manage',
    ACTIVITIES = '/activities',
    ACTIVITIES_DETAIL_FUNGIBLE = '/detail/fungible',
    ACTIVITIES_DETAIL_DAPP = '/detail/dapp',
    ACTIVITIES_DETAIL_SIGN_CERT = '/detail/signCertificate',
    ACTIVITIES_DELEGATED_TRANSACTION = '/detail/delegatedTransaction',
    ADD_HARDWARE_WALLET = '/addHardwareWallet',
    CONNECTED_APP = '/connectedApp',
    CONNECTED_APP_APPROVE = '/connectedApp/approve',
    CONNECTED_APP_SEND_TRANSACTION = '/connectedApp/sendTransaction',
    CONNECTED_APP_SIGN_CERT = '/connectedApp/signCert',
    FIRST_ACCESS = '/firstAccess',
    FULL_SCREEN_PREFIX = '/index.html#',
    DEV_MODE_SIGNUP = '/devmodesignup',
    INVALID_CONTEXT = '/invalidcontext',
    MANAGE_TOKENS = '/manageTokens',
    MANAGE_TOKENS_ADD = '/manageTokens/add',
    SEND = '/send',
    SEND_TOKEN = '/sendToken',
    SEND_TOKEN_CONFIRM = '/sendTokenConfirm',
    SEND_TOKEN_SUCCESSFUL = '/sendTokenSuccessful',
    SETTINGS = '/settings',
    SETTINGS_GENERAL = '/settings/general',
    SETTINGS_CONTACT_ADD = '/settings/contacts/add',
    SETTINGS_CONTACT_EDIT = '/settings/contacts/edit',
    SETTINGS_CONTACTS = '/settings/contacts',
    SETTINGS_NETWORKS = '/settings/networks',
    SETTINGS_TRANSACTIONS = '/settings/transactions',
    SETTINGS_NETWORK_ADD = '/settings/networks/add',
    SETTINGS_NETWORKS_EDIT = '/settings/networks/edit',
    SETTINGS_SECURITY_PRIVACY = '/settings/securityPrivacy',
    SETTINGS_WALLET_RESET = '/settings/WalletReset',
    SETTINGS_ALERTS = '/settings/alerts',
    SETTINGS_UTILITIES = '/settings/utilities',
    SETTINGS_CHANGE_PASSWORD = '/settings/changePassword',
    SETTINGS_CONNECTED_APPS = '/settings/connectedApps',
    SETTINGS_ABOUT = '/settings/about',
    BACKUP_MNEMONIC = '/settings/backupMnemonic',
    SETUP_PASSWORD = '/setupPassword',
    SETUP_WALLET = '/setupWallet',
    TRANSACTION_LOG = '/transactionLog',
    NFT_DASHBOARD = '/nft',
    NFT_MANUALLY_ADD_TOKEN = '/nft/manuallyAddToken',
    NFT_TOKEN_VIEW = '/nft/tokenView',
    NFT_COLLECTION_VIEW = '/nft/collectionView',
    NFT_COLLECTION_HISTORY = '/nft/collectionHistory',
    NFT_SEND = '/nft/send',
    NFT_SEND_SELECT_ACCOUNT = '/nft/send/selectAccount',
    NFT_SEND_RECAP = '/nft/send/recap',
    NFT_SEND_SUCCESS = '/nft/send/success',
    NEW_LOCAL_WALLET_INTRO = '/newLocalWalletIntro',
    NEW_LOCAL_WALLET = '/newLocalWallet',
    COMPLETED_WALLET = '/completedWallet',
    IMPORT_WALLET = '/importWallet',
    IMPORT_LOCAL_WALLET = '/importLocalWallet',
    IMPORT_LOCAL_WALLET_MNEMONIC = '/importLocalWalletMnemonic',
    IMPORT_LOCAL_WALLET_PRIVATEKEY = '/importLocalWalletPrivateKey',
    IMPORT_LOCAL_WALLET_KEYSTORE = '/importLocalWalletKeystore',
    IMPORT_HARDWARE_WALLET_CONNECT = '/importHardwareWalletConnect',
    IMPORT_HARDWARE_WALLET_ACCOUNTS = '/importHardwareWalletAccounts',
    WALLETS = '/wallets',
    DASHBOARD = '/dashboard',
    TOKEN_DETAIL = '/tokenDetail',
    ACCOUNT_QR_CODE = '/accountQrCode',
    BUY_TOKEN = '/buyToken',
    BUY_TOKEN_SUCCESS = '/buyTokenSuccess',
    BUY_TOKEN_EXIT = '/buyTokenExit',
    BUY_TOKEN_ERROR = '/buyTokenError',
}

export enum IFRAME_ACTIONS {
    OPEN_IFRAME = 'OPEN_IFRAME',
    CLOSE_IFRAME = 'CLOSE_IFRAME',
    TOGGLE_IFRAME = 'TOGGLE_IFRAME',
    HEALTH_CHECK = 'HEALTH_CHECK',
}

export enum CONNECTED_APP_METHOD {
    SEND_TRANSACTION = 'thor_sendTransaction',
    SIGN_CERTIFICATE = 'thor_signCertificate',
}

export enum MOUSE_EVENT {
    MOUSEUP = 'mouseup',
    MOUSEMOVE = 'mousemove',
}

export enum DIRECTIONS {
    UP = '+',
    DOWN = '-',
}

export enum ENV {
    PROD = 'PROD',
    DEV = 'DEV',
    E2E = 'E2E',
}

export enum Theme {
    LIGHT = 'light',
    DARK = 'dark',
    AUTO = 'auto',
}

/**
 * Try to keep these names consistent. Trying to stick to the rough convention of: <DOMAIN>_<ACTION>_<RESULT>
 */
export enum AnalyticsEvent {
    /**
     * App Access
     */
    APP_MANUALLY_UNLOCKED = 'APP_MANUALLY_UNLOCKED',
    APP_AUTO_UNLOCKED = 'APP_AUTO_UNLOCKED',

    /**
     * BUY
     */
    BUY_CRYPTO_BUTTON_CLICKED = 'BUY_CRYPTO_BUTTON_CLICKED',
    BUY_CRYPTO_PROVIDER_SELECTED = 'BUY_CRYPTO_PROVIDER_SELECTED',
    BUY_CRYPTO_SUCCESSFULLY_COMPLETED = 'BUY_CRYPTO_SUCCESSFULLY_COMPLETED',

    /**
     * DApps
     */
    DAPP_TX_REQUESTED = 'DAPP_TX_REQUESTED',
    DAPP_TX_BUILD_FAILED = 'DAPP_TX_BUILD_FAILED',
    DAPP_TX_BUILD_SUCCESS = 'DAPP_TX_BUILD_SUCCESS',
    DAPP_TX_SENT = 'DAPP_TX_SENT',
    DAPP_TX_FAILED_TO_SEND = 'DAPP_TX_FAILED_TO_SEND',

    DAPP_REQUEST_CERTIFICATE = 'DAPP_REQUEST_CERTIFICATE',
    DAPP_CERTIFICATE_SUCCESS = 'DAPP_CERTIFICATE_SUCCESS',
    DAPP_CERTIFICATE_FAILED = 'DAPP_CERTIFICATE_FAILED',
    DAPP_CERTIFICATE_REJECTED = 'DAPP_CERTIFICATE_REJECTED',

    /**
     * Tokens
     */
    TOKENS_CUSTOM_TOKEN_ADDED = 'TOKENS_CUSTOM_TOKEN_ADDED',

    /**
     * Fungible Token TXs
     */
    SEND_FUNGIBLE_BUILD_SUCCESS = 'SEND_FUNGIBLE_BUILD_SUCCESS',
    SEND_FUNGIBLE_BUILD_FAILED = 'SEND_FUNGIBLE_BUILD_FAILED',
    SEND_FUNGIBLE_SENT = 'SEND_FUNGIBLE_SENT',
    SEND_FUNGIBLE_FAILED_TO_SEND = 'SEND_FUNGIBLE_FAILED_TO_SEND',

    /**
     * Wallet Events
     */

    WALLET_ADD_LEDGER_SUCCESS = 'WALLET_ADD_LEDGER_SUCCESS',
    WALLET_ADD_LEDGER_ERROR = 'WALLET_ADD_LEDGER_ERROR',
    WALLET_ADD_LOCAL_SUCCESS = 'WALLET_ADD_LOCAL_SUCCESS',
    WALLET_ADD_LOCAL_ERROR = 'WALLET_ADD_LOCAL_ERROR',

    /**
     * Onboarding Events
     */
    ONBOARD_PAGE_LOADED_IMPORT_OR_CREATE = 'ONBOARD_PAGE_LOADED_IMPORT_OR_CREATE',
    ONBOARD_PAGE_LOADED_SETUP_PASSWORD = 'ONBOARD_PAGE_LOADED_SETUP_PASSWORD',
    ONBOARD_PASSWORD_SETUP_SUBMITTED = 'ONBOARD_PASSWORD_SETUP_SUBMITTED',
    ONBOARD_NEW_WALLET_VERIFICATION_FAILED = 'ONBOARD_NEW_WALLET_VERIFICATION_FAILED',
    ONBOARD_NEW_WALLET_VERIFICATION_SUCCESS = 'ONBOARD_NEW_WALLET_VERIFICATION_SUCCESS',
    ONBOARD_NEW_WALLET_VERIFICATION_ATTEMPTED = 'ONBOARD_NEW_WALLET_VERIFICATION_ATTEMPTED',
    ONBOARD_NEW_WALLET_PROCEED_TO_VERIFY = 'ONBOARD_NEW_WALLET_PROCEED_TO_VERIFY',
    ONBOARD_IMPORT_MNEMONIC_SUBMITTED = 'ONBOARD_IMPORT_MNEMONIC_SUBMITTED',
    ONBOARD_IMPORT_MNEMONIC_FAILED = 'ONBOARD_IMPORT_MNEMONIC_FAILED',
    ONBOARD_IMPORT_PRIVATEKEY_SUBMITTED = 'ONBOARD_IMPORT_PRIVATEKEY_SUBMITTED',
    ONBOARD_IMPORT_PRIVATEKEY_FAILED = 'ONBOARD_IMPORT_PRIVATEKEY_FAILED',
    ONBOARD_IMPORT_KEYSTORE_SUBMITTED = 'ONBOARD_IMPORT_KEYSTORE_SUBMITTED',
    ONBOARD_IMPORT_KEYSTORE_FAILED = 'ONBOARD_IMPORT_KEYSTORE_FAILED',
    ONBOARD_IMPORT_HW_PAGE_LOADED = 'ONBOARD_IMPORT_HW_PAGE_LOADED',
    ONBOARD_IMPORT_HW_FOUND_LEDGER_DETAILS = 'ONBOARD_IMPORT_HW_FOUND_LEDGER_DETAILS',
    ONBOARD_IMPORT_HW_SELECTED_LEDGER = 'ONBOARD_IMPORT_HW_SELECTED_LEDGER',
    ONBOARD_IMPORT_HW_FAILED_TO_IMPORT = 'ONBOARD_IMPORT_HW_FAILED_TO_IMPORT',
    ONBOARD_IMPORT_HW_USER_SUBMITTED_ACCOUNTS = 'ONBOARD_IMPORT_HW_USER_SUBMITTED_ACCOUNTS',
    ONBOARD_FIRST_ACCESS_LOADED = 'ONBOARD_FIRST_ACCESS_LOADED',
    ONBOARD_COMPLETED_WALLET_SCREEN = 'ONBOARD_COMPLETED_WALLET_SCREEN',
    ONBOARD_INTRO_SKIP_TO_PASSWORD = 'ONBOARD_INTRO_SKIP_TO_PASSWORD',
    ONBOARD_INTRO_NEXT_SLIDE = 'ONBOARD_INTRO_NEXT_SLIDE',
    ONBOARD_SELECT_WALLET_CREATE_WALLET = 'ONBOARD_SELECT_WALLET_CREATE_WALLET',
    ONBOARD_SELECT_WALLET_IMPORT_WALLET = 'ONBOARD_SELECT_WALLET_IMPORT_WALLET',
    ONBOARD_SELECT_WALLET_IMPORT_MNEMONIC = 'ONBOARD_SELECT_WALLET_IMPORT_MNEMONIC',
    ONBOARD_SELECT_WALLET_IMPORT_HARDWARE = 'ONBOARD_SELECT_WALLET_IMPORT_HARDWARE',

    /**
     * Fungible Token TXs
     */
    SEND_NFT_SENT = 'SEND_NFT_SENT',
    SEND_NFT_FAILED_TO_SEND = 'SEND_NFT_FAILED_TO_SEND',
}
